// pages/自定义组件/test.js
Component({
    options: {
        multipleSlots: true, // 在组件定义时的选项中启用多slot支持。详见文档
        styleIsolation: 'isolated' // 启动样式隔离，详见文档
    },
    /**
     * 组件的属性列表
     */
    properties: {
        // 这里定义了innerText属性，属性值可以在组件使用时指定
        innerText: {
            type: String,
            value: 'default value（点击我，改变父组件的值）'
        },
        arr: {
            type: Array,
            value: []
        }
    },
    /**
     * 组件的初始数据
     */
    data: {}, // 私有数据，可用于模板渲染
    /**
     * 组件的方法列表
     */
    methods: {
        // 子传父  这里是一个自定义方法 且内部方法建议以下划线开头
        _customMethod() {
            this.triggerEvent('sendMessage', 222)
        }
    },
    /** 
     * 组件的生命周期
    */
    lifetimes: {
        created: function () {
            console.log('在组件实例刚刚被创建时执行')
        },
        ready: function () {
            console.log('在组件在视图层布局完成后执行')
        },
        attached: function () {
            // 在组件实例进入页面节点树时执行
            console.log('我是test自定义组件，我已经进来啦！')
        },
        detached: function () {
            // 在组件实例被从页面节点树移除时执行
            console.log('我是test自定义组件，我已经出去啦！')
        },
        err: function () {
            console.log('每当组件方法抛出错误时执行')
        }
    },
    /**
     * 组件所在页面的生命周期
     */
    pageLifetimes: {
        show: function () {
            console.log('页面被展示')  // 会打印出来
            // 页面被展示
        },
        hide: function () {
            // 页面被隐藏
        },
        resize: function (size) {
            // 页面尺寸变化
        }
    }
})
